package com.liao.dto;

import lombok.Data;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDate;

/**
 * 图书信息DTO
 */
@Data
public class BookDTO {

    /**
     * 图书ID（更新时使用）
     */
    private Long id;

    /**
     * 图书名称
     */
    @NotBlank(message = "图书名称不能为空")
    private String name;

    /**
     * 作者
     */
    @NotBlank(message = "作者不能为空")
    private String author;

    /**
     * 出版社
     */
    private String publisher;

    /**
     * 出版日期
     */
    private LocalDate publishDate;

    /**
     * ISBN编号
     */
    @NotBlank(message = "ISBN编号不能为空")
    private String isbn;

    /**
     * 分类ID
     */
    @NotNull(message = "分类不能为空")
    private Long categoryId;

    /**
     * 图书描述
     */
    private String description;

    /**
     * 价格
     */
    @DecimalMin(value = "0.00", message = "价格不能小于0")
    private BigDecimal price;

    /**
     * 库存数量
     */
    @Min(value = 0, message = "库存不能小于0")
    private Integer stock;

    /**
     * 存放位置
     */
    private String location;

    /**
     * 封面图片
     */
    private String coverImage;
}